linux自动删除最老的几个文件
每月运行一次: 0 0 1 * * /opt/project/removecode.sh /opt/project/remove.log 21 ,不能只定期删除某个目录下的文件,再次运行脚本的时候,需要定期删除无用的文件。
如果统计文件数目, crontab -e 添加如下一行,因此, 摘要:最近有需求要删除Linux中旧的压缩包,某些陈旧项目已经数年没有更新,应该是先备份到某一目录,无法适应我的要求,大量不用的工程文件占用磁盘空间,觉得直接删除文件不妥,用grep ^- 列举最老的2个文件 ls -tr | head -2 | xargs 删除所有文件 rm -rf * 完工 #!/bin/bash #不同的项目有不同的路径 array[0]=project1 array[1]=project2 array[2]=com/project3 array[3]=com/phase/project4 array[4]=project5 array[5]=com/stor/sproject6 #项目的主干目录是相同的 RELEASE=/opt/devapps/nexus/sonatype-work/nexus/storage/release/ for path in ${array[@]}; do #拼接文件路径 releasepath=${RELEASE}${path} cd $releasepath #判断是否存在该目录 if [ $? -eq 0 ]; then echo $releasepath echo Contains file: #输出所有的内容 echo * num=`ls -l | grep ^d | wc -l`; #判断文件夹的数量是否超过5个(我只想保留最新的5个文件夹) if [$num -gt 5 ]; then #计算超过5个多少 num=`expr $num - 5` clean=`ls -tr | head -$num | xargs` echo will delete file: echo ${clean} #-n1 每次处理1个文件 ls -tr | head -$num | xargs -i -n1 rm -rf {} fi fi done 完善 实际部署时,删除上次备份的文件,更不能按时间删除多少天以前的文件,这些文件归属不同的项目目录下, 背景 公司的文件服务器上存有所需的项目war包, #!/bin/bash array[0]=project1 array[1]=project2 array[2]=com/project3 array[3]=com/phase/project4 array[4]=project5 array[5]=com/stor/sproject6 RELEASE=/opt/devapps/nexus/sonatype-work/nexus/storage/release/ #清空备份文件 BACKUP=/tmp/storage/ cd $BACKUP if [ $? -eq 0 ]; then rm -rf * fi #清除超过5个文件之外最老的那些文件 for path in ${array[@]}; do releasepath=${RELEASE}${path} cd $releasepath if [ $? -eq 0 ]; then echo $releasepath echo Contains file: echo * num=`ls -l | grep ^d | wc -l`; if [$num -gt 5 ]; then num=`expr $num - 5` clean=`ls -tr | head -$num | xargs` echo will delete file: echo ${clean} #把文件移动到备份文件夹更安全 ls -tr | head -$num | xargs -i -n1 mv {} $BACKUP fi fi done 自动化处理 将上述脚本保存为removecode.sh。
创建的时间各不相同,一段时间以后。
于是自己研究了一翻, 推进 统计目录下的文件夹数量 ls -l | grep ^d | wc -l 这里的grep ^d是统计文件夹,发现网上给的答案都是删除N天前的文件,然后添加crontab,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/kaifa/10965.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
最强调试器DDD(Data Displ
时间:2021-01-07
-
Linux C语言基础IT之家——
时间:2021-01-07
-
Linux内核插入卸载模块
时间:2021-01-07
-
Linux下的c基础编程——字
时间:2021-01-06
-
Linux下的c基础编程——按
时间:2021-01-06
-
Linux下简单的cIT之家——选
时间:2021-01-06
-
linux通过/sys/class/gpio文件操
时间:2021-01-06
-
通过Java实现Linux系统下g
时间:2021-01-06
热门文章
-
开发一个Linux调试器(四):Elves和dwarv
时间:2020-12-22
-
开发一个Linux调试器(五):源码和信号
时间:2020-12-22
-
shell脚本之始
时间:2020-12-29
-
Linux下简单的cIT之家——选择法排序
时间:2021-01-06
-
linux中gdb的可视化调试
时间:2020-12-27
-
如何挑选你的第一门IT之家语言
时间:2020-12-26
-
通过Java实现Linux系统下grep指令的功能
时间:2021-01-06
-
Linux下的c基础编程——按原顺序插入元素
时间:2021-01-06
-
获取linux机器上的网卡地址
时间:2020-12-26
-
Linux内核插入卸载模块
时间:2021-01-07
